#!/usr/bin/evn python
# -*- coding: utf-8 -*-
import os
from loguru import logger
from sys import stdout


""" 日志的配置类 """
BASE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 定义debug文件名称
debug_log_file_path = os.path.join(BASE_PATH, 'logs/info_{time:YYYYMMDD}.log')
# 定义err_log文件名称
err_log_file_path = os.path.join(BASE_PATH, 'logs/error_{time:YYYYMMDD}.log')

LOGURU_FORMAT: str = '<g>{time:YYYY-MM-DD HH:mm:ss}</g>\t' \
                     '<level>[{level}]</level>\t' \
                     '(<b><y>{file}</y><y>:</y><y>{line}</y></b>)' \
                     '<b>{module}.<e>{function}</e></b>\t' \
                     '<level>{message}</level>'

# 这句话很关键避免多次的写入我们的日志
logger.configure(
    handlers=[{'sink': stdout, 'format': LOGURU_FORMAT}],
)


# enqueue=True表示 开启异步写入
# 使用 rotation 参数实现定时创建 log 文件,可以实现每天 0 点新创建一个 log 文件输出了
logger.add(err_log_file_path, format=LOGURU_FORMAT, rotation='00:00', compression="zip", encoding='utf-8',
           level='ERROR', enqueue=True)

logger.add(debug_log_file_path, format=LOGURU_FORMAT, rotation='00:00', compression="zip", encoding='utf-8',
           level='INFO', enqueue=True)
